package com.zisu.a996.guava;

import com.google.common.collect.HashMultiset;
import com.google.common.collect.Multiset;
import com.google.common.primitives.Chars;
import org.junit.Test;

import javax.swing.*;

/**
 * @Author: 蔡翔
 * @Date: 2019/12/1 10:29
 * @Version 1.0、
 *
 * 实战：使用Multiset统计一首古诗词的文字出现频率
 * 灵活使用multiset
 */
public class MultisetTest {
    private static final String text ="《南陵别儿童入京》"+
            "白酒新熟山中归，黄鸡啄黍秋正肥。"
            +
            "呼童烹鸡酌白酒，儿女嬉笑牵人衣。"
            +
            "高歌取醉欲自慰，起舞落日争光辉。"
            +
            "游说万乘苦不早，著鞭跨马涉远道。"
            +
            "会稽 愚妇轻买臣，余亦辞家西入秦。"
            +
            "仰天大笑出门去，我辈岂是蓬蒿人。";
    @Test
    public void handler(){
        Multiset<Character> multiset = HashMultiset.create();
        //String 转成 char 数组
        final char[] chars = text.toCharArray();

        Chars.asList(chars).stream()
                .forEach(
                        charItem ->{
                            //multiset 只要直接add 就行了，它会把 重复的字归为一组.不用你人为的去判断这个数存不存在，存在的话count+1
                            multiset.add(charItem);
                        }
                );
        System.out.println("size:"+multiset.size());
        System.out.println("count:"+multiset.count('人'));
    }
}
